@atri-editor/core 0.1.0 → 0.3.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/CHANGELOG.md +36 -0
- package/README.md +5 -5
- package/dist/AtriEditor.d.ts +23 -5
- package/dist/AtriEditor.d.ts.map +1 -1
- package/dist/AtriEditorElement.d.ts +5 -1
- package/dist/AtriEditorElement.d.ts.map +1 -1
- package/dist/ai/AICommandMenu.d.ts.map +1 -1
- package/dist/core/CoreEditor.d.ts +5 -1
- package/dist/core/CoreEditor.d.ts.map +1 -1
- package/dist/core/ExtensionManager.d.ts +2 -14
- package/dist/core/ExtensionManager.d.ts.map +1 -1
- package/dist/core/I18nManager.d.ts +9 -0
- package/dist/core/I18nManager.d.ts.map +1 -1
- package/dist/core/LinkPanel.d.ts +73 -0
- package/dist/core/LinkPanel.d.ts.map +1 -0
- package/dist/core/TableGridPanel.d.ts +41 -0
- package/dist/core/TableGridPanel.d.ts.map +1 -0
- package/dist/core/TableMenu.d.ts +67 -0
- package/dist/core/TableMenu.d.ts.map +1 -0
- package/dist/core/ThemeManager.d.ts +3 -10
- package/dist/core/ThemeManager.d.ts.map +1 -1
- package/dist/core/ToolbarManager.d.ts +15 -2
- package/dist/core/ToolbarManager.d.ts.map +1 -1
- package/dist/core/floating-panel.d.ts +20 -0
- package/dist/core/floating-panel.d.ts.map +1 -0
- package/dist/core/icons.d.ts.map +1 -1
- package/dist/extensions/Attachment.d.ts.map +1 -1
- package/dist/extensions/AttachmentLink.d.ts.map +1 -1
- package/dist/extensions/MediaFiles.d.ts.map +1 -1
- package/dist/extensions/attachment-markdown.d.ts +22 -0
- package/dist/extensions/attachment-markdown.d.ts.map +1 -0
- package/dist/extensions/table.d.ts +23 -0
- package/dist/extensions/table.d.ts.map +1 -0
- package/dist/index.d.ts +1 -2
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +1131 -350
- package/dist/index.js.map +1 -1
- package/dist/media/InsertPanel.d.ts +5 -6
- package/dist/media/InsertPanel.d.ts.map +1 -1
- package/dist/media/MediaStatusStrip.d.ts.map +1 -1
- package/dist/media/Uploader.d.ts.map +1 -1
- package/dist/style.css +183 -0
- package/dist/types/ai.d.ts +2 -0
- package/dist/types/ai.d.ts.map +1 -1
- package/dist/types/editor.d.ts +52 -7
- package/dist/types/editor.d.ts.map +1 -1
- package/dist/types/extension.d.ts +16 -34
- package/dist/types/extension.d.ts.map +1 -1
- package/dist/types/index.d.ts +0 -1
- package/dist/types/index.d.ts.map +1 -1
- package/dist/utils/dom.d.ts +3 -2
- package/dist/utils/dom.d.ts.map +1 -1
- package/dist/utils/table.d.ts +24 -0
- package/dist/utils/table.d.ts.map +1 -0
- package/package.json +24 -5
- package/dist/types/events.d.ts +0 -26
- package/dist/types/events.d.ts.map +0 -1
package/CHANGELOG.md
ADDED
|
@@ -0,0 +1,36 @@
|
|
|
1
|
+
# @atri-editor/core
|
|
2
|
+
|
|
3
|
+
## 0.3.0
|
|
4
|
+
|
|
5
|
+
### Minor Changes
|
|
6
|
+
|
|
7
|
+
- d3b367d: 表格与链接补上操作入口,其中链接的点击行为有变更。
|
|
8
|
+
|
|
9
|
+
### 表格
|
|
10
|
+
- 光标进入表格时在单元格上方浮出操作菜单:上/下插入行、删行、左/右插入列、删列、合并单元格、拆分单元格、切换表头行、单元格左/中/右对齐、删除表格。合并与拆分够不着时是禁用而不是隐藏,位置不跳
|
|
11
|
+
- 列宽可拖拽(`table.resizable`,默认开),拖出来的列宽写回单元格 `colwidth`,随 JSON / HTML 一起保存
|
|
12
|
+
- 单元格对齐写在单元格自带的 `align` 属性上,导出 Markdown 时落到 pipe table 分隔行的 `:---` / `---:` / `:---:`,双向都不丢
|
|
13
|
+
- `table` 选项从 `boolean` 扩为 `boolean | AtriTableConfig`(`{ resizable?, menu? }`);`false` 的语义不变,仍是节点、按钮、菜单与 `insertTable()` 一并不提供
|
|
14
|
+
|
|
15
|
+
### 链接
|
|
16
|
+
- 新增工具栏「链接」项与插入 / 编辑浮层:填地址、切「在新窗口打开」、移除链接;只贴域名会自动补 `https://`
|
|
17
|
+
- **行为变更**:`openOnClick` 默认从 Tiptap 的 `true` 改为 `false`。编辑态点击链接不再导航,而是在浮层里就地编辑——此前这次点击会被链接扩展整个吃掉(连光标都放不进去)并打开新标签页,未保存的内容会跟着一起丢。需要原来的导航行为就显式设 `link: { openOnClick: true }`
|
|
18
|
+
- 新增 `link.target`(默认 `'_blank'`)与 `link.markdownLinks`(默认 false)
|
|
19
|
+
|
|
20
|
+
### 其他
|
|
21
|
+
- 新增 i18n 词条 `table.*` 与 `link.*`(中英双语)
|
|
22
|
+
- `ToolbarManager.updateButtonStates()` 由私有改为公开:挂在门面上的浮层开合不改文档,等不到 transaction,按钮状态需要外部主动刷一次
|
|
23
|
+
|
|
24
|
+
- 938fd17: 工具栏补上任务列表、分割线与两端对齐。
|
|
25
|
+
|
|
26
|
+
- 任务列表:一键把段落转成任务列表,勾选框写回 `checked`;Markdown 以 `- [ ]` / `- [x]` 双向往返,嵌套任务列表也不丢。新增运行时依赖 `@tiptap/extension-list`(与 StarterKit 同源同版本,不引入新的传递依赖)
|
|
27
|
+
- 分割线:工具栏可插 `<hr>`,与插入表格同组(都是"往正文里插一块"的动作),Markdown 以 `---` 往返
|
|
28
|
+
- 两端对齐:`alignJustify` 命令与快捷键此前已存在,这次补上按钮
|
|
29
|
+
- 内置项 id 新增 `taskList` `horizontalRule` `alignJustify`;默认布局按钮数 22 → 25,分组数不变
|
|
30
|
+
|
|
31
|
+
## 0.2.0
|
|
32
|
+
|
|
33
|
+
### Minor Changes
|
|
34
|
+
|
|
35
|
+
- 6934121: 工具栏新增「插入表格」:点击弹出网格悬停选择器(8×6,Notion 式),点击即插入;表格节点(Table/Row/Header/Cell)默认注册,pipe table 与 markdown 双向转换开箱可用。门面与 Web Component 同步提供 insertTable(options) API,`table: false` 可整体关闭。
|
|
36
|
+
- c59210e: 「附件样式」切换按钮不再常驻默认顶部工具栏,改由选中附件时浮出的选区工具栏承接;`toolbar.bubble` 默认随之改为开启。入口相应收窄:只有整节点选中(点卡片、方向键越过块级附件、插入命令收尾)才浮出,光标紧贴附件时不再有常驻按钮。需要旧行为可把 `attachmentDisplay` 显式写回 `toolbar.items`,或程序化走 `toggleAttachmentDisplay` 命令;不需要浮层传 `toolbar: { bubble: false }`。
|
package/README.md
CHANGED
|
@@ -1,13 +1,14 @@
|
|
|
1
1
|
# @atri-editor/core
|
|
2
2
|
|
|
3
|
-
基于 Tiptap v3 的框架无关富文本编辑器:Web Component、Markdown
|
|
3
|
+
基于 Tiptap v3 的框架无关富文本编辑器:Web Component、Markdown 双向转换、表格(网格选择器插入、操作菜单与列宽拖拽、pipe table 双向转换)、链接插入与编辑浮层、任务列表(`- [ ]` 双向)、图片与附件上传管线、可插拔 AI 集成、中英文 i18n 与亮/暗主题。
|
|
4
4
|
|
|
5
|
-
|
|
5
|
+
完整文档见 [仓库 README](https://github.com/CherishDreams/atri-editor#readme),示例见 [demos/](https://github.com/CherishDreams/atri-editor/tree/main/demos)(vanilla / vue / react 三个)。
|
|
6
6
|
|
|
7
7
|
## 安装
|
|
8
8
|
|
|
9
9
|
```bash
|
|
10
|
-
|
|
10
|
+
npm install @atri-editor/core
|
|
11
|
+
# 或 pnpm add @atri-editor/core
|
|
11
12
|
```
|
|
12
13
|
|
|
13
14
|
## 使用
|
|
@@ -34,8 +35,7 @@ editor.getMarkdown(); // HTML ⇄ Markdown 双向
|
|
|
34
35
|
## 说明
|
|
35
36
|
|
|
36
37
|
- ESM-only(与上游 Tiptap v3 一致),需要现代打包器;Node 端 import 安全,编辑功能只在浏览器生效。
|
|
37
|
-
- `@tiptap/*`、`@floating-ui/dom`、`i18next` 为运行时依赖,由本包的 `dependencies`
|
|
38
|
-
- 当前版本尚未发布到 npm registry;以 workspace 或 `pnpm pack` 产物形式消费。
|
|
38
|
+
- `@tiptap/*`、`@floating-ui/dom`、`i18next` 为运行时依赖,由本包的 `dependencies` 声明;`@tiptap/core` 与 `@tiptap/pm` 是 peer 依赖,宿主项目里保持单实例。
|
|
39
39
|
|
|
40
40
|
## License
|
|
41
41
|
|
package/dist/AtriEditor.d.ts
CHANGED
|
@@ -1,11 +1,12 @@
|
|
|
1
1
|
/**
|
|
2
2
|
* AtriEditor - 编辑器主类
|
|
3
3
|
*/
|
|
4
|
-
import type { Editor } from '@tiptap/core';
|
|
5
|
-
import type { AtriEditorOptions, IAtriEditor, InsertAttachmentOptions, InsertImageOptions, MediaKind, SetContentOptions, AtriAIConfig, AtriNodeViewConfig } from './types';
|
|
4
|
+
import type { Editor, JSONContent } from '@tiptap/core';
|
|
5
|
+
import type { AtriEditorOptions, IAtriEditor, InsertAttachmentOptions, InsertImageOptions, InsertTableOptions, MediaKind, SetContentOptions, AtriAIConfig, AtriNodeViewConfig } from './types';
|
|
6
6
|
import { ThemeManager } from './core/ThemeManager';
|
|
7
7
|
import { I18nManager } from './core/I18nManager';
|
|
8
8
|
import { ExtensionManager } from './core/ExtensionManager';
|
|
9
|
+
import type { ThemeType } from './core/ThemeManager';
|
|
9
10
|
import { AIService } from './ai/AIService';
|
|
10
11
|
export declare class AtriEditor implements IAtriEditor {
|
|
11
12
|
private coreEditor;
|
|
@@ -14,8 +15,13 @@ export declare class AtriEditor implements IAtriEditor {
|
|
|
14
15
|
private i18nManager;
|
|
15
16
|
private extensionManager;
|
|
16
17
|
private toolbarManager;
|
|
18
|
+
/** 工具栏容器引用:重建编辑器时复用同一个挂载点,不重新查询 DOM */
|
|
19
|
+
private toolbarContainer;
|
|
17
20
|
private aiService;
|
|
18
21
|
private aiMenuManager;
|
|
22
|
+
/** 链接浮层与表格操作菜单归门面所有:两者都跟着"编辑行为"走,与工具栏渲染与否无关 */
|
|
23
|
+
private linkPanel;
|
|
24
|
+
private tableMenu;
|
|
19
25
|
private mediaRuntime;
|
|
20
26
|
private mediaStatus;
|
|
21
27
|
/** 重建后待恢复的选区,新视图就绪时应用 */
|
|
@@ -28,10 +34,18 @@ export declare class AtriEditor implements IAtriEditor {
|
|
|
28
34
|
private container;
|
|
29
35
|
private options;
|
|
30
36
|
constructor(options: AtriEditorOptions);
|
|
31
|
-
/**
|
|
37
|
+
/** bubble 默认开,显式 false 才不建元素;元素故意不插进文档:挂载与定位全归 BubbleMenu 插件管 */
|
|
32
38
|
private ensureBubbleElement;
|
|
33
39
|
private onEditorCreated;
|
|
34
40
|
private initAI;
|
|
41
|
+
/**
|
|
42
|
+
* 创建核心编辑器:构造函数与 recreateEditor 共用的装配点。
|
|
43
|
+
* 只有编辑器壳(挂载元素/初始内容/内容格式)随重建变化,其余全部来自 this.options,
|
|
44
|
+
* 逐项手抄两遍必然漂移——出错的第一现场就是两处不齐
|
|
45
|
+
*/
|
|
46
|
+
private createCoreEditor;
|
|
47
|
+
/** 初始化依赖编辑器实例的子系统:Markdown 服务、链接浮层、工具栏、表格菜单、AI 服务,重建后同样要重新走一遍 */
|
|
48
|
+
private setupSubsystems;
|
|
35
49
|
/**
|
|
36
50
|
* 重新创建编辑器(用于动态注册 NodeView 后更新 schema)
|
|
37
51
|
* 会整体替换编辑器视图,因此内容与选区都要手动恢复
|
|
@@ -86,7 +100,7 @@ export declare class AtriEditor implements IAtriEditor {
|
|
|
86
100
|
/**
|
|
87
101
|
* Markdown 转 JSON
|
|
88
102
|
*/
|
|
89
|
-
markdownToJSON(markdown: string):
|
|
103
|
+
markdownToJSON(markdown: string): JSONContent;
|
|
90
104
|
/**
|
|
91
105
|
* 获取选中文本
|
|
92
106
|
*/
|
|
@@ -103,6 +117,10 @@ export declare class AtriEditor implements IAtriEditor {
|
|
|
103
117
|
* 在选区处插入附件(形态由 options.display 或 media.attachment.display 决定)
|
|
104
118
|
*/
|
|
105
119
|
insertAttachment(options: InsertAttachmentOptions): void;
|
|
120
|
+
/**
|
|
121
|
+
* 在选区处插入表格(默认 3×3 带表头)
|
|
122
|
+
*/
|
|
123
|
+
insertTable(options?: InsertTableOptions): void;
|
|
106
124
|
/**
|
|
107
125
|
* 走上传管线插入本地文件
|
|
108
126
|
* kind 缺省时按 MIME 分流;promise 在这批文件全部落定(成功或失败)后 resolve
|
|
@@ -156,7 +174,7 @@ export declare class AtriEditor implements IAtriEditor {
|
|
|
156
174
|
/**
|
|
157
175
|
* 设置主题
|
|
158
176
|
*/
|
|
159
|
-
setTheme(theme:
|
|
177
|
+
setTheme(theme: ThemeType): void;
|
|
160
178
|
/**
|
|
161
179
|
* 切换主题
|
|
162
180
|
*/
|
package/dist/AtriEditor.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"AtriEditor.d.ts","sourceRoot":"","sources":["../src/AtriEditor.ts"],"names":[],"mappings":"AAAA;;GAEG;AACH,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,cAAc,CAAC;
|
|
1
|
+
{"version":3,"file":"AtriEditor.d.ts","sourceRoot":"","sources":["../src/AtriEditor.ts"],"names":[],"mappings":"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"}
|
|
@@ -2,7 +2,7 @@
|
|
|
2
2
|
* AtriEditorElement - Web Component 封装
|
|
3
3
|
*/
|
|
4
4
|
import { AtriEditor } from './AtriEditor';
|
|
5
|
-
import type { AtriEditorOptions, InsertAttachmentOptions, InsertImageOptions, MediaKind } from './types';
|
|
5
|
+
import type { AtriEditorOptions, InsertAttachmentOptions, InsertImageOptions, InsertTableOptions, MediaKind } from './types';
|
|
6
6
|
/**
|
|
7
7
|
* SSR / 纯 Node 安全基类:类声明会在模块加载时求值 extends 后的表达式,
|
|
8
8
|
* 直接 `extends HTMLElement` 会让无 DOM 的环境(Next/Nuxt 服务端、vitest node 池)
|
|
@@ -63,6 +63,10 @@ export declare class AtriEditorElement extends AtriEditorBase {
|
|
|
63
63
|
* 在选区处插入附件卡片
|
|
64
64
|
*/
|
|
65
65
|
insertAttachment(options: InsertAttachmentOptions): void;
|
|
66
|
+
/**
|
|
67
|
+
* 在选区处插入表格
|
|
68
|
+
*/
|
|
69
|
+
insertTable(options?: InsertTableOptions): void;
|
|
66
70
|
/**
|
|
67
71
|
* 走上传管线插入本地文件
|
|
68
72
|
*/
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"AtriEditorElement.d.ts","sourceRoot":"","sources":["../src/AtriEditorElement.ts"],"names":[],"mappings":"AAAA;;GAEG;AACH,OAAO,EAAE,UAAU,EAAE,MAAM,cAAc,CAAC;AAC1C,OAAO,KAAK,EACV,iBAAiB,EACjB,uBAAuB,EACvB,kBAAkB,EAClB,SAAS,EACV,MAAM,SAAS,CAAC;AAIjB;;;;;GAKG;AACH,QAAA,MAAM,cAAc,EAAE,OAAO,WACmE,CAAC;AAEjG;;GAEG;AACH,wBAAgB,mBAAmB,IAAI,IAAI,CAS1C;AAED;;GAEG;AACH,qBAAa,iBAAkB,SAAQ,cAAc;IACnD,OAAO,CAAC,MAAM,CAA2B;IACzC,OAAO,CAAC,QAAQ,CAAkC;IAElD,MAAM,KAAK,kBAAkB,IAAI,MAAM,EAAE,CAExC;IAED,cAEC;IAED,iBAAiB,IAAI,IAAI,CAExB;IAED,oBAAoB,IAAI,IAAI,CAE3B;IAED,wBAAwB,CAAC,IAAI,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,GAAG,IAAI,EAAE,QAAQ,EAAE,MAAM,GAAG,IAAI,GAAG,IAAI,CAyB7F;IAED;;OAEG;IACH,UAAU,CAAC,OAAO,EAAE,OAAO,CAAC,iBAAiB,CAAC,GAAG,IAAI,CAEpD;IAED,OAAO,CAAC,UAAU;IA2ClB,OAAO,CAAC,aAAa;IAOrB;;OAEG;IACH,SAAS,IAAI,UAAU,GAAG,IAAI,CAE7B;IAED;;OAEG;IACH,OAAO,IAAI,MAAM,CAEhB;IAED;;OAEG;IACH,OAAO,IAAI,MAAM,GAAG,IAAI,CAEvB;IAED;;OAEG;IACH,WAAW,IAAI,MAAM,CAEpB;IAED;;OAEG;IACH,UAAU,CAAC,OAAO,EAAE,MAAM,GAAG,MAAM,EAAE,MAAM,CAAC,EAAE,MAAM,GAAG,MAAM,GAAG,UAAU,GAAG,IAAI,CAEhF;IAED;;OAEG;IACH,YAAY,IAAI,IAAI,CAEnB;IAED;;OAEG;IACH,WAAW,CAAC,OAAO,EAAE,kBAAkB,GAAG,IAAI,CAE7C;IAED;;OAEG;IACH,gBAAgB,CAAC,OAAO,EAAE,uBAAuB,GAAG,IAAI,CAEvD;IAED;;OAEG;IACG,WAAW,CAAC,KAAK,EAAE,IAAI,EAAE,GAAG,QAAQ,EAAE,IAAI,CAAC,EAAE,SAAS,GAAG,OAAO,CAAC,IAAI,CAAC,CAE3E;IAED;;OAEG;IACG,kBAAkB,IAAI,OAAO,CAAC,IAAI,CAAC,CAExC;IAED;;OAEG;IACH,iBAAiB,IAAI,OAAO,CAE3B;IAED;;OAEG;IACH,KAAK,IAAI,IAAI,CAEZ;CACF"}
|
|
1
|
+
{"version":3,"file":"AtriEditorElement.d.ts","sourceRoot":"","sources":["../src/AtriEditorElement.ts"],"names":[],"mappings":"AAAA;;GAEG;AACH,OAAO,EAAE,UAAU,EAAE,MAAM,cAAc,CAAC;AAC1C,OAAO,KAAK,EACV,iBAAiB,EACjB,uBAAuB,EACvB,kBAAkB,EAClB,kBAAkB,EAClB,SAAS,EACV,MAAM,SAAS,CAAC;AAIjB;;;;;GAKG;AACH,QAAA,MAAM,cAAc,EAAE,OAAO,WACmE,CAAC;AAEjG;;GAEG;AACH,wBAAgB,mBAAmB,IAAI,IAAI,CAS1C;AAED;;GAEG;AACH,qBAAa,iBAAkB,SAAQ,cAAc;IACnD,OAAO,CAAC,MAAM,CAA2B;IACzC,OAAO,CAAC,QAAQ,CAAkC;IAElD,MAAM,KAAK,kBAAkB,IAAI,MAAM,EAAE,CAExC;IAED,cAEC;IAED,iBAAiB,IAAI,IAAI,CAExB;IAED,oBAAoB,IAAI,IAAI,CAE3B;IAED,wBAAwB,CAAC,IAAI,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,GAAG,IAAI,EAAE,QAAQ,EAAE,MAAM,GAAG,IAAI,GAAG,IAAI,CAyB7F;IAED;;OAEG;IACH,UAAU,CAAC,OAAO,EAAE,OAAO,CAAC,iBAAiB,CAAC,GAAG,IAAI,CAEpD;IAED,OAAO,CAAC,UAAU;IA2ClB,OAAO,CAAC,aAAa;IAOrB;;OAEG;IACH,SAAS,IAAI,UAAU,GAAG,IAAI,CAE7B;IAED;;OAEG;IACH,OAAO,IAAI,MAAM,CAEhB;IAED;;OAEG;IACH,OAAO,IAAI,MAAM,GAAG,IAAI,CAEvB;IAED;;OAEG;IACH,WAAW,IAAI,MAAM,CAEpB;IAED;;OAEG;IACH,UAAU,CAAC,OAAO,EAAE,MAAM,GAAG,MAAM,EAAE,MAAM,CAAC,EAAE,MAAM,GAAG,MAAM,GAAG,UAAU,GAAG,IAAI,CAEhF;IAED;;OAEG;IACH,YAAY,IAAI,IAAI,CAEnB;IAED;;OAEG;IACH,WAAW,CAAC,OAAO,EAAE,kBAAkB,GAAG,IAAI,CAE7C;IAED;;OAEG;IACH,gBAAgB,CAAC,OAAO,EAAE,uBAAuB,GAAG,IAAI,CAEvD;IAED;;OAEG;IACH,WAAW,CAAC,OAAO,CAAC,EAAE,kBAAkB,GAAG,IAAI,CAE9C;IAED;;OAEG;IACG,WAAW,CAAC,KAAK,EAAE,IAAI,EAAE,GAAG,QAAQ,EAAE,IAAI,CAAC,EAAE,SAAS,GAAG,OAAO,CAAC,IAAI,CAAC,CAE3E;IAED;;OAEG;IACG,kBAAkB,IAAI,OAAO,CAAC,IAAI,CAAC,CAExC;IAED;;OAEG;IACH,iBAAiB,IAAI,OAAO,CAE3B;IAED;;OAEG;IACH,KAAK,IAAI,IAAI,CAEZ;CACF"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"AICommandMenu.d.ts","sourceRoot":"","sources":["../../src/ai/AICommandMenu.ts"],"names":[],"mappings":"AAAA;;GAEG;AACH,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,cAAc,CAAC;AAE3C,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,UAAU,CAAC;AAE/C,MAAM,WAAW,oBAAoB;IACnC,cAAc;IACd,SAAS,EAAE,cAAc,EAAE,CAAC;IAC5B,iBAAiB;IACjB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,WAAW;IACX,QAAQ,CAAC,EAAE,CAAC,IAAI,EAAE,cAAc,KAAK,IAAI,CAAC;CAC3C;AAED;;;GAGG;AACH,qBAAa,oBAAoB;IAC/B,OAAO,CAAC,MAAM,CAAS;IACvB,OAAO,CAAC,SAAS,CAAmB;IACpC,OAAO,CAAC,WAAW,CAA+B;IAClD,OAAO,CAAC,SAAS,CAAS;IAC1B,OAAO,CAAC,aAAa,CAAK;IAC1B,OAAO,CAAC,WAAW,CAAS;IAC5B,OAAO,CAAC,QAAQ,CAAC,CAAiC;IAClD,OAAO,CAAC,iBAAiB,CAAC,CAAa;IAEvC,YACE,MAAM,EAAE,MAAM,EACd,SAAS,EAAE,cAAc,EAAE,EAC3B,WAAW,GAAE,MAAY,EACzB,QAAQ,CAAC,EAAE,CAAC,IAAI,EAAE,cAAc,KAAK,IAAI,EAQ1C;IAED;;;;OAIG;IACH,OAAO,CAAC,oBAAoB;IAW5B,OAAO,CAAC,qBAAqB;IAY7B,OAAO,CAAC,gBAAgB;IAMxB;;OAEG;IACH,IAAI,IAAI,IAAI,CAMX;IAED;;OAEG;IACH,IAAI,IAAI,IAAI,CAOX;IAED,OAAO,CAAC,iBAAiB;YAwCX,YAAY;
|
|
1
|
+
{"version":3,"file":"AICommandMenu.d.ts","sourceRoot":"","sources":["../../src/ai/AICommandMenu.ts"],"names":[],"mappings":"AAAA;;GAEG;AACH,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,cAAc,CAAC;AAE3C,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,UAAU,CAAC;AAE/C,MAAM,WAAW,oBAAoB;IACnC,cAAc;IACd,SAAS,EAAE,cAAc,EAAE,CAAC;IAC5B,iBAAiB;IACjB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,WAAW;IACX,QAAQ,CAAC,EAAE,CAAC,IAAI,EAAE,cAAc,KAAK,IAAI,CAAC;CAC3C;AAED;;;GAGG;AACH,qBAAa,oBAAoB;IAC/B,OAAO,CAAC,MAAM,CAAS;IACvB,OAAO,CAAC,SAAS,CAAmB;IACpC,OAAO,CAAC,WAAW,CAA+B;IAClD,OAAO,CAAC,SAAS,CAAS;IAC1B,OAAO,CAAC,aAAa,CAAK;IAC1B,OAAO,CAAC,WAAW,CAAS;IAC5B,OAAO,CAAC,QAAQ,CAAC,CAAiC;IAClD,OAAO,CAAC,iBAAiB,CAAC,CAAa;IAEvC,YACE,MAAM,EAAE,MAAM,EACd,SAAS,EAAE,cAAc,EAAE,EAC3B,WAAW,GAAE,MAAY,EACzB,QAAQ,CAAC,EAAE,CAAC,IAAI,EAAE,cAAc,KAAK,IAAI,EAQ1C;IAED;;;;OAIG;IACH,OAAO,CAAC,oBAAoB;IAW5B,OAAO,CAAC,qBAAqB;IAY7B,OAAO,CAAC,gBAAgB;IAMxB;;OAEG;IACH,IAAI,IAAI,IAAI,CAMX;IAED;;OAEG;IACH,IAAI,IAAI,IAAI,CAOX;IAED,OAAO,CAAC,iBAAiB;YAwCX,YAAY;IAmC1B,OAAO,CAAC,UAAU;IAUlB,OAAO,CAAC,aAAa;IAKrB,OAAO,CAAC,eAAe;IAYvB,OAAO,CAAC,iBAAiB;IAUzB;;OAEG;IACH,aAAa,CAAC,KAAK,EAAE,aAAa,GAAG,OAAO,CA6B3C;IAED;;OAEG;IACH,OAAO,IAAI,IAAI,CAId;CACF"}
|
|
@@ -3,7 +3,7 @@
|
|
|
3
3
|
*/
|
|
4
4
|
import { Editor, type EditorOptions } from '@tiptap/core';
|
|
5
5
|
import { MediaRuntime } from '../media/MediaRuntime';
|
|
6
|
-
import type { AtriMarkdownConfig, AtriMediaConfig } from '../types';
|
|
6
|
+
import type { AtriLinkConfig, AtriMarkdownConfig, AtriMediaConfig, AtriTableConfig } from '../types';
|
|
7
7
|
export interface CoreEditorConfig {
|
|
8
8
|
element: HTMLElement;
|
|
9
9
|
content?: string | object;
|
|
@@ -14,6 +14,10 @@ export interface CoreEditorConfig {
|
|
|
14
14
|
markdown?: AtriMarkdownConfig;
|
|
15
15
|
/** 媒体(图片 / 附件)配置,false 时不注册任何媒体节点 */
|
|
16
16
|
media?: AtriMediaConfig | false;
|
|
17
|
+
/** 表格配置,false 时不注册 Table 扩展,工具栏也不出插入按钮;默认开 */
|
|
18
|
+
table?: boolean | AtriTableConfig;
|
|
19
|
+
/** 链接配置,省略时编辑态点击不导航 */
|
|
20
|
+
link?: AtriLinkConfig;
|
|
17
21
|
/**
|
|
18
22
|
* 复用外部的上传运行时
|
|
19
23
|
* AtriEditor 重建编辑器时会把同一个实例传进来,进行中的上传才不会丢
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"CoreEditor.d.ts","sourceRoot":"","sources":["../../src/core/CoreEditor.ts"],"names":[],"mappings":"AAAA;;GAEG;AACH,OAAO,EAAE,MAAM,EAAgB,KAAK,aAAa,EAAE,MAAM,cAAc,CAAC;
|
|
1
|
+
{"version":3,"file":"CoreEditor.d.ts","sourceRoot":"","sources":["../../src/core/CoreEditor.ts"],"names":[],"mappings":"AAAA;;GAEG;AACH,OAAO,EAAE,MAAM,EAAgB,KAAK,aAAa,EAAE,MAAM,cAAc,CAAC;AASxE,OAAO,EAAE,YAAY,EAAE,MAAM,uBAAuB,CAAC;AAErD,OAAO,KAAK,EACV,cAAc,EACd,kBAAkB,EAClB,eAAe,EACf,eAAe,EAChB,MAAM,UAAU,CAAC;AASlB,MAAM,WAAW,gBAAgB;IAC/B,OAAO,EAAE,WAAW,CAAC;IACrB,OAAO,CAAC,EAAE,MAAM,GAAG,MAAM,CAAC;IAC1B,aAAa,CAAC,EAAE,MAAM,GAAG,MAAM,GAAG,UAAU,CAAC;IAC7C,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,UAAU,CAAC,EAAE,aAAa,CAAC,YAAY,CAAC,CAAC;IACzC,QAAQ,CAAC,EAAE,kBAAkB,CAAC;IAC9B,qCAAqC;IACrC,KAAK,CAAC,EAAE,eAAe,GAAG,KAAK,CAAC;IAChC,8CAA8C;IAC9C,KAAK,CAAC,EAAE,OAAO,GAAG,eAAe,CAAC;IAClC,uBAAuB;IACvB,IAAI,CAAC,EAAE,cAAc,CAAC;IACtB;;;OAGG;IACH,YAAY,CAAC,EAAE,YAAY,CAAC;IAC5B;;;OAGG;IACH,aAAa,CAAC,EAAE,WAAW,GAAG,IAAI,CAAC;IACnC,QAAQ,CAAC,EAAE,MAAM,IAAI,CAAC;IACtB,QAAQ,CAAC,EAAE,MAAM,IAAI,CAAC;IACtB,OAAO,CAAC,EAAE,MAAM,IAAI,CAAC;IACrB,MAAM,CAAC,EAAE,MAAM,IAAI,CAAC;IACpB,SAAS,CAAC,EAAE,MAAM,IAAI,CAAC;CACxB;AAED,qBAAa,UAAU;IACrB,OAAO,CAAC,MAAM,CAAS;IACvB,OAAO,CAAC,MAAM,CAAmB;IACjC,6CAA6C;IAC7C,OAAO,CAAC,eAAe,CAAS;IAChC,OAAO,CAAC,YAAY,CAAsB;IAE1C,YAAY,MAAM,EAAE,gBAAgB,EAMnC;IAED,OAAO,CAAC,YAAY;IAgIpB;;OAEG;IACH,eAAe,IAAI,YAAY,GAAG,IAAI,CAErC;IAED;;OAEG;IACH,SAAS,IAAI,MAAM,CAElB;IAED;;OAEG;IACH,OAAO,IAAI,MAAM,CAehB;IAED;;OAEG;IACH,OAAO,IAAI,MAAM,CAEhB;IAED;;OAEG;IACH,UAAU,CAAC,OAAO,EAAE,MAAM,GAAG,MAAM,EAAE,UAAU,UAAO,GAAG,IAAI,CAE5D;IAED;;OAEG;IACH,YAAY,IAAI,IAAI,CAEnB;IAED;;OAEG;IACH,OAAO,IAAI,OAAO,CAEjB;IAED;;OAEG;IACH,WAAW,CAAC,QAAQ,EAAE,OAAO,GAAG,IAAI,CAEnC;IAED;;OAEG;IACH,UAAU,IAAI,OAAO,CAEpB;IAED;;OAEG;IACH,KAAK,IAAI,IAAI,CAEZ;IAED;;OAEG;IACH,IAAI,IAAI,IAAI,CAEX;IAED;;OAEG;IACH,aAAa,CAAC,OAAO,EAAE,MAAM,GAAG,IAAI,CAEnC;IAED;;;;OAIG;IACH,cAAc,CAAC,WAAW,EAAE,MAAM,GAAG,IAAI,CAGxC;IAED;;OAEG;IACH,OAAO,IAAI,IAAI,CAEd;CACF"}
|
|
@@ -1,16 +1,12 @@
|
|
|
1
1
|
import type { AnyExtension } from '@tiptap/core';
|
|
2
|
-
import type {
|
|
2
|
+
import type { AtriNodeViewConfig } from '../types';
|
|
3
3
|
export declare class ExtensionManager {
|
|
4
4
|
private extensions;
|
|
5
5
|
private nodeViews;
|
|
6
6
|
/**
|
|
7
7
|
* 注册扩展
|
|
8
8
|
*/
|
|
9
|
-
register(extension: AnyExtension
|
|
10
|
-
/**
|
|
11
|
-
* 批量注册扩展
|
|
12
|
-
*/
|
|
13
|
-
registerAll(extensions: AnyExtension[]): void;
|
|
9
|
+
register(extension: AnyExtension): void;
|
|
14
10
|
/**
|
|
15
11
|
* 注册自定义 NodeView
|
|
16
12
|
*/
|
|
@@ -23,10 +19,6 @@ export declare class ExtensionManager {
|
|
|
23
19
|
* 获取扩展
|
|
24
20
|
*/
|
|
25
21
|
get(name: string): AnyExtension | undefined;
|
|
26
|
-
/**
|
|
27
|
-
* 卸载扩展
|
|
28
|
-
*/
|
|
29
|
-
unregister(name: string): boolean;
|
|
30
22
|
/**
|
|
31
23
|
* 获取所有扩展
|
|
32
24
|
*/
|
|
@@ -39,9 +31,5 @@ export declare class ExtensionManager {
|
|
|
39
31
|
* 是否已注册
|
|
40
32
|
*/
|
|
41
33
|
has(name: string): boolean;
|
|
42
|
-
/**
|
|
43
|
-
* 清空所有扩展
|
|
44
|
-
*/
|
|
45
|
-
clear(): void;
|
|
46
34
|
}
|
|
47
35
|
//# sourceMappingURL=ExtensionManager.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ExtensionManager.d.ts","sourceRoot":"","sources":["../../src/core/ExtensionManager.ts"],"names":[],"mappings":"AAIA,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,cAAc,CAAC;AACjD,OAAO,KAAK,EAAE,
|
|
1
|
+
{"version":3,"file":"ExtensionManager.d.ts","sourceRoot":"","sources":["../../src/core/ExtensionManager.ts"],"names":[],"mappings":"AAIA,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,cAAc,CAAC;AACjD,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,UAAU,CAAC;AAEnD,qBAAa,gBAAgB;IAC3B,OAAO,CAAC,UAAU,CAAwC;IAC1D,OAAO,CAAC,SAAS,CAA8C;IAE/D;;OAEG;IACH,QAAQ,CAAC,SAAS,EAAE,YAAY,GAAG,IAAI,CAMtC;IAED;;OAEG;IACH,gBAAgB,CAAC,MAAM,EAAE,kBAAkB,GAAG,IAAI,CAuCjD;IAED;;OAEG;IACH,iBAAiB,CAAC,OAAO,EAAE,kBAAkB,EAAE,GAAG,IAAI,CAErD;IAED;;OAEG;IACH,GAAG,CAAC,IAAI,EAAE,MAAM,GAAG,YAAY,GAAG,SAAS,CAE1C;IAED;;OAEG;IACH,MAAM,IAAI,YAAY,EAAE,CAEvB;IAED;;OAEG;IACH,YAAY,IAAI,GAAG,CAAC,MAAM,EAAE,kBAAkB,CAAC,CAE9C;IAED;;OAEG;IACH,GAAG,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAEzB;CACF"}
|
|
@@ -5,6 +5,10 @@ export declare class I18nManager {
|
|
|
5
5
|
* 翻译
|
|
6
6
|
*/
|
|
7
7
|
t(key: string, options?: Record<string, unknown>): string;
|
|
8
|
+
/**
|
|
9
|
+
* 翻译,词条缺失时回退到 fallback:i18next 缺词条时原样返回 key
|
|
10
|
+
*/
|
|
11
|
+
tOr(key: string, fallback: string, options?: Record<string, unknown>): string;
|
|
8
12
|
/**
|
|
9
13
|
* 切换语言
|
|
10
14
|
*/
|
|
@@ -18,4 +22,9 @@ export declare class I18nManager {
|
|
|
18
22
|
*/
|
|
19
23
|
getLanguage(): string;
|
|
20
24
|
}
|
|
25
|
+
/**
|
|
26
|
+
* 浮层类 UI 共用的文案回退:未注入 i18n 或词条缺失时用内置文案
|
|
27
|
+
* (t() 缺词条时原样返回 key,所以 tOr 已是类里的规矩,这里只补"可能压根没有 i18n"这一层)
|
|
28
|
+
*/
|
|
29
|
+
export declare function tOrFallback(i18n: I18nManager | undefined, key: string, fallback: string): string;
|
|
21
30
|
//# sourceMappingURL=I18nManager.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"I18nManager.d.ts","sourceRoot":"","sources":["../../src/core/I18nManager.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"I18nManager.d.ts","sourceRoot":"","sources":["../../src/core/I18nManager.ts"],"names":[],"mappings":"AAmKA,qBAAa,WAAW;IACtB,OAAO,CAAC,QAAQ,CAAe;IAE/B,YAAY,IAAI,GAAE,MAAa,EAa9B;IAED;;OAEG;IACH,CAAC,CAAC,GAAG,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,MAAM,CAExD;IAED;;OAEG;IACH,GAAG,CAAC,GAAG,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,MAAM,CAG5E;IAED;;OAEG;IACG,cAAc,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAEhD;IAED;;OAEG;IACH,iBAAiB,CAAC,OAAO,EAAE,CAAC,IAAI,EAAE,MAAM,KAAK,IAAI,GAAG,MAAM,IAAI,CAG7D;IAED;;OAEG;IACH,WAAW,IAAI,MAAM,CAEpB;CACF;AAED;;;GAGG;AACH,wBAAgB,WAAW,CAAC,IAAI,EAAE,WAAW,GAAG,SAAS,EAAE,GAAG,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,GAAG,MAAM,CAEhG"}
|
|
@@ -0,0 +1,73 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* LinkPanel - 链接插入 / 编辑浮层
|
|
3
|
+
*
|
|
4
|
+
* 与 InsertPanel 同为挂在 document.body 上的浮层,定位 / 关闭 / 主题三段走 floating-panel 公共底盘。
|
|
5
|
+
*
|
|
6
|
+
* 链接此前只有 schema 与命令、没有任何入口:工具栏没有按钮,插进去也改不了,
|
|
7
|
+
* 而编辑态点击又会按链接扩展的默认行为直接导航,等于把当前页面连同未保存的内容一起交出去。
|
|
8
|
+
* 这个浮层补上入口,同时把"点链接"改成"就地编辑"。
|
|
9
|
+
*/
|
|
10
|
+
import type { Editor } from '@tiptap/core';
|
|
11
|
+
import { type I18nManager } from './I18nManager';
|
|
12
|
+
import type { AtriLinkTarget } from '../types';
|
|
13
|
+
export interface LinkPanelOptions {
|
|
14
|
+
editor: Editor;
|
|
15
|
+
/**
|
|
16
|
+
* 编辑器根容器(.atri-editor)
|
|
17
|
+
*
|
|
18
|
+
* 点击监听与主题类都挂在它身上,不碰 editor.view.dom:Tiptap v3 的视图是迟到且会被销毁的,
|
|
19
|
+
* 构造时未必拿得到、销毁时已经没了,而这个容器由门面创建,生命周期与编辑器实例一致
|
|
20
|
+
*/
|
|
21
|
+
root: HTMLElement;
|
|
22
|
+
i18n?: I18nManager;
|
|
23
|
+
/** 与交给链接扩展的 openOnClick 同源:扩展负责导航时浮层不抢点击 */
|
|
24
|
+
openOnClick?: boolean;
|
|
25
|
+
/** 新链接的打开方式,默认 '_blank' */
|
|
26
|
+
target?: AtriLinkTarget;
|
|
27
|
+
/** 开合时把控制权交回工具栏:按钮的 active 与 aria-expanded 由它维护 */
|
|
28
|
+
onOpenChange?: (open: boolean) => void;
|
|
29
|
+
}
|
|
30
|
+
/**
|
|
31
|
+
* 补全协议:用户多半只贴 example.com,补成 https:// 浏览器与 Markdown 两边才都认。
|
|
32
|
+
* 已有协议的(https:、mailto:…)与站内绝对路径 / 锚点 / 相对路径原样保留
|
|
33
|
+
*/
|
|
34
|
+
export declare function normalizeHref(value: string): string;
|
|
35
|
+
export declare class LinkPanel {
|
|
36
|
+
private editor;
|
|
37
|
+
private root;
|
|
38
|
+
private i18n?;
|
|
39
|
+
private openOnClick;
|
|
40
|
+
private defaultTarget;
|
|
41
|
+
private onOpenChange?;
|
|
42
|
+
private unsubscribeLanguage?;
|
|
43
|
+
private element;
|
|
44
|
+
private floating;
|
|
45
|
+
private detachDismiss;
|
|
46
|
+
private labelled;
|
|
47
|
+
private urlInput;
|
|
48
|
+
private targetInput;
|
|
49
|
+
/** 打开时选区内是否已有链接:决定"确定"是改这一条还是新插一条 */
|
|
50
|
+
private editing;
|
|
51
|
+
constructor(options: LinkPanelOptions);
|
|
52
|
+
get isOpen(): boolean;
|
|
53
|
+
toggle(anchor: HTMLElement): void;
|
|
54
|
+
open(anchor: HTMLElement): void;
|
|
55
|
+
close(): void;
|
|
56
|
+
destroy(): void;
|
|
57
|
+
/**
|
|
58
|
+
* 编辑态点击链接就地编辑(与 wangEditor / AIEditor 一致)
|
|
59
|
+
*
|
|
60
|
+
* 拖选收尾也会派发 click,所以只在选区收拢时接管;openOnClick 开着说明点击归扩展导航
|
|
61
|
+
*/
|
|
62
|
+
private onEditorClick;
|
|
63
|
+
private t;
|
|
64
|
+
/** 登记一处随语言重画的文案:input 画到 placeholder,其他画成文字 */
|
|
65
|
+
private label;
|
|
66
|
+
private applyLabels;
|
|
67
|
+
private applyLabel;
|
|
68
|
+
private build;
|
|
69
|
+
/** 有链接就整条改(extendMarkRange 把范围摊到整段链接),没链接就看选区:套住它,或者把地址本身当链接文字插进去 */
|
|
70
|
+
private apply;
|
|
71
|
+
private remove;
|
|
72
|
+
}
|
|
73
|
+
//# sourceMappingURL=LinkPanel.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"LinkPanel.d.ts","sourceRoot":"","sources":["../../src/core/LinkPanel.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AACH,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,cAAc,CAAC;AAO3C,OAAO,EAAe,KAAK,WAAW,EAAE,MAAM,eAAe,CAAC;AAC9D,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,UAAU,CAAC;AAE/C,MAAM,WAAW,gBAAgB;IAC/B,MAAM,EAAE,MAAM,CAAC;IACf;;;;;OAKG;IACH,IAAI,EAAE,WAAW,CAAC;IAClB,IAAI,CAAC,EAAE,WAAW,CAAC;IACnB,4CAA4C;IAC5C,WAAW,CAAC,EAAE,OAAO,CAAC;IACtB,2BAA2B;IAC3B,MAAM,CAAC,EAAE,cAAc,CAAC;IACxB,mDAAmD;IACnD,YAAY,CAAC,EAAE,CAAC,IAAI,EAAE,OAAO,KAAK,IAAI,CAAC;CACxC;AAQD;;;GAGG;AACH,wBAAgB,aAAa,CAAC,KAAK,EAAE,MAAM,GAAG,MAAM,CAKnD;AAED,qBAAa,SAAS;IACpB,OAAO,CAAC,MAAM,CAAS;IACvB,OAAO,CAAC,IAAI,CAAc;IAC1B,OAAO,CAAC,IAAI,CAAC,CAAc;IAC3B,OAAO,CAAC,WAAW,CAAU;IAC7B,OAAO,CAAC,aAAa,CAAiB;IACtC,OAAO,CAAC,YAAY,CAAC,CAA0B;IAC/C,OAAO,CAAC,mBAAmB,CAAC,CAAa;IAEzC,OAAO,CAAC,OAAO,CAA+B;IAC9C,OAAO,CAAC,QAAQ,CAA8B;IAC9C,OAAO,CAAC,aAAa,CAA6B;IAClD,OAAO,CAAC,QAAQ,CAAyB;IACzC,OAAO,CAAC,QAAQ,CAAiC;IACjD,OAAO,CAAC,WAAW,CAAiC;IACpD,qCAAqC;IACrC,OAAO,CAAC,OAAO,CAAS;IAExB,YAAY,OAAO,EAAE,gBAAgB,EAWpC;IAED,IAAI,MAAM,IAAI,OAAO,CAEpB;IAED,MAAM,CAAC,MAAM,EAAE,WAAW,GAAG,IAAI,CAMhC;IAED,IAAI,CAAC,MAAM,EAAE,WAAW,GAAG,IAAI,CAU9B;IAED,KAAK,IAAI,IAAI,CAeZ;IAED,OAAO,IAAI,IAAI,CAKd;IAED;;;;OAIG;IACH,OAAO,CAAC,aAAa,CAcnB;IAEF,OAAO,CAAC,CAAC;IAIT,+CAA+C;IAC/C,OAAO,CAAC,KAAK;IAKb,OAAO,CAAC,WAAW;IAInB,OAAO,CAAC,UAAU;IAMlB,OAAO,CAAC,KAAK;IA+Db,qEAAqE;IACrE,OAAO,CAAC,KAAK;IAyBb,OAAO,CAAC,MAAM;CAIf"}
|
|
@@ -0,0 +1,41 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* TableGridPanel - 工具栏「插入表格」的网格悬停选择器
|
|
3
|
+
*
|
|
4
|
+
* Notion 式交互:悬停高亮左上 (row × col) 区域、点击即插入。
|
|
5
|
+
* 与 InsertPanel 同为挂在 document.body 上的浮层,定位/关闭/主题三段走 floating-panel 公共底盘。
|
|
6
|
+
*/
|
|
7
|
+
import type { Editor } from '@tiptap/core';
|
|
8
|
+
import { type I18nManager } from './I18nManager';
|
|
9
|
+
export interface TableGridPanelOptions {
|
|
10
|
+
editor: Editor;
|
|
11
|
+
i18n?: I18nManager;
|
|
12
|
+
/** 开合时把控制权交回工具栏:按钮的 active 与 aria-expanded 由它维护 */
|
|
13
|
+
onOpenChange?: (open: boolean) => void;
|
|
14
|
+
}
|
|
15
|
+
export declare class TableGridPanel {
|
|
16
|
+
private editor;
|
|
17
|
+
private i18n?;
|
|
18
|
+
private onOpenChange?;
|
|
19
|
+
private element;
|
|
20
|
+
private floating;
|
|
21
|
+
private detachDismiss;
|
|
22
|
+
/** 键盘高亮的当前格,-1 表示还没进入键盘导航 */
|
|
23
|
+
private cursorRow;
|
|
24
|
+
private cursorCol;
|
|
25
|
+
/** 单元格按 row * MAX_COLS + col 存放,方便方向键直接换算 */
|
|
26
|
+
private cells;
|
|
27
|
+
constructor(options: TableGridPanelOptions);
|
|
28
|
+
get isOpen(): boolean;
|
|
29
|
+
toggle(anchor: HTMLElement): void;
|
|
30
|
+
close(): void;
|
|
31
|
+
destroy(): void;
|
|
32
|
+
private t;
|
|
33
|
+
private build;
|
|
34
|
+
/**
|
|
35
|
+
* 高亮左上角 (rows × cols) 区域并在提示行显示尺寸;-1 清空
|
|
36
|
+
*/
|
|
37
|
+
private highlight;
|
|
38
|
+
private insert;
|
|
39
|
+
private onKeyDown;
|
|
40
|
+
}
|
|
41
|
+
//# sourceMappingURL=TableGridPanel.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"TableGridPanel.d.ts","sourceRoot":"","sources":["../../src/core/TableGridPanel.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AACH,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,cAAc,CAAC;AAO3C,OAAO,EAAe,KAAK,WAAW,EAAE,MAAM,eAAe,CAAC;AAE9D,MAAM,WAAW,qBAAqB;IACpC,MAAM,EAAE,MAAM,CAAC;IACf,IAAI,CAAC,EAAE,WAAW,CAAC;IACnB,mDAAmD;IACnD,YAAY,CAAC,EAAE,CAAC,IAAI,EAAE,OAAO,KAAK,IAAI,CAAC;CACxC;AAMD,qBAAa,cAAc;IACzB,OAAO,CAAC,MAAM,CAAS;IACvB,OAAO,CAAC,IAAI,CAAC,CAAc;IAC3B,OAAO,CAAC,YAAY,CAAC,CAA0B;IAE/C,OAAO,CAAC,OAAO,CAA+B;IAC9C,OAAO,CAAC,QAAQ,CAA8B;IAC9C,OAAO,CAAC,aAAa,CAA6B;IAClD,6BAA6B;IAC7B,OAAO,CAAC,SAAS,CAAM;IACvB,OAAO,CAAC,SAAS,CAAM;IACvB,6CAA6C;IAC7C,OAAO,CAAC,KAAK,CAAqB;IAElC,YAAY,OAAO,EAAE,qBAAqB,EAIzC;IAED,IAAI,MAAM,IAAI,OAAO,CAEpB;IAED,MAAM,CAAC,MAAM,EAAE,WAAW,GAAG,IAAI,CAYhC;IAED,KAAK,IAAI,IAAI,CAYZ;IAED,OAAO,IAAI,IAAI,CAEd;IAED,OAAO,CAAC,CAAC;IAIT,OAAO,CAAC,KAAK;IAyCb;;OAEG;IACH,OAAO,CAAC,SAAS;IAsBjB,OAAO,CAAC,MAAM;IAKd,OAAO,CAAC,SAAS;CA0BlB"}
|
|
@@ -0,0 +1,67 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* TableMenu - 光标落在表格里时浮出的上下文操作菜单
|
|
3
|
+
*
|
|
4
|
+
* 与工具栏浮层(InsertPanel / TableGridPanel)同一套外观,但触发方式不同:它没有锚点按钮,
|
|
5
|
+
* 靠选区进入表格自动浮出,所以定位锚是「当前单元格的 DOM 盒子」,量不到再退回光标坐标
|
|
6
|
+
* (AICommandMenu 的虚拟锚点写法)。
|
|
7
|
+
*
|
|
8
|
+
* 行列增删合并这些命令由 prosemirror-tables 提供,此前只有命令没有入口,
|
|
9
|
+
* 表格因此是"插得出来、改不动"的半成品。
|
|
10
|
+
*/
|
|
11
|
+
import type { Editor } from '@tiptap/core';
|
|
12
|
+
import { type I18nManager } from './I18nManager';
|
|
13
|
+
export interface TableMenuOptions {
|
|
14
|
+
editor: Editor;
|
|
15
|
+
/**
|
|
16
|
+
* 编辑器根容器(.atri-editor):只用来复制主题类
|
|
17
|
+
*
|
|
18
|
+
* 不取 editor.view.dom:那个视图是迟到且会被销毁的,而这个容器由门面创建,生命周期一致
|
|
19
|
+
*/
|
|
20
|
+
root: HTMLElement;
|
|
21
|
+
i18n?: I18nManager;
|
|
22
|
+
}
|
|
23
|
+
export declare class TableMenu {
|
|
24
|
+
private editor;
|
|
25
|
+
private root;
|
|
26
|
+
private i18n?;
|
|
27
|
+
private items;
|
|
28
|
+
private unsubscribeLanguage?;
|
|
29
|
+
private element;
|
|
30
|
+
private detachEscape;
|
|
31
|
+
/** Escape 收起后不再自动浮出,直到光标离开表格(否则下一次状态更新立刻又把它拉出来) */
|
|
32
|
+
private dismissed;
|
|
33
|
+
constructor(options: TableMenuOptions);
|
|
34
|
+
get isOpen(): boolean;
|
|
35
|
+
destroy(): void;
|
|
36
|
+
private t;
|
|
37
|
+
/**
|
|
38
|
+
* 按当前选区决定浮出还是收起。光标在表格里是唯一条件——
|
|
39
|
+
* 空选区、单元格内选一段字、框选多个单元格都算
|
|
40
|
+
*
|
|
41
|
+
* 听的是 update 而不是 transaction:setEditable 只发 update(造一个空事务),
|
|
42
|
+
* 切只读时若不跟着重判,菜单会留在只读的表格上
|
|
43
|
+
*/
|
|
44
|
+
private sync;
|
|
45
|
+
/** 点到编辑器外面就收起来:菜单没有"关了还要在"的理由,焦点回来时 sync 会重新浮出 */
|
|
46
|
+
private onBlur;
|
|
47
|
+
private onScroll;
|
|
48
|
+
private dismiss;
|
|
49
|
+
private show;
|
|
50
|
+
private hide;
|
|
51
|
+
/**
|
|
52
|
+
* Escape 收起菜单。这里不用 floating-panel 的 listenPanelDismiss:那一套还管外点关闭,
|
|
53
|
+
* 而点外面多半仍落在同一个单元格里,关了立刻被下一次状态更新重新浮出,只会闪
|
|
54
|
+
*/
|
|
55
|
+
private listenEscape;
|
|
56
|
+
private build;
|
|
57
|
+
private applyLabels;
|
|
58
|
+
private updateStates;
|
|
59
|
+
/**
|
|
60
|
+
* 当前单元格的虚拟锚点;量不到返回 null,调用方保持面板可见但不改坐标
|
|
61
|
+
*
|
|
62
|
+
* 优先锚在单元格盒子上(菜单跟着格子走,比跟着光标稳),拿不到盒子才退回光标坐标
|
|
63
|
+
*/
|
|
64
|
+
private anchor;
|
|
65
|
+
private position;
|
|
66
|
+
}
|
|
67
|
+
//# sourceMappingURL=TableMenu.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"TableMenu.d.ts","sourceRoot":"","sources":["../../src/core/TableMenu.ts"],"names":[],"mappings":"AAAA;;;;;;;;;GASG;AACH,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,cAAc,CAAC;AAI3C,OAAO,EAAe,KAAK,WAAW,EAAE,MAAM,eAAe,CAAC;AAG9D,MAAM,WAAW,gBAAgB;IAC/B,MAAM,EAAE,MAAM,CAAC;IACf;;;;OAIG;IACH,IAAI,EAAE,WAAW,CAAC;IAClB,IAAI,CAAC,EAAE,WAAW,CAAC;CACpB;AAiJD,qBAAa,SAAS;IACpB,OAAO,CAAC,MAAM,CAAS;IACvB,OAAO,CAAC,IAAI,CAAc;IAC1B,OAAO,CAAC,IAAI,CAAC,CAAc;IAC3B,OAAO,CAAC,KAAK,CAAqB;IAClC,OAAO,CAAC,mBAAmB,CAAC,CAAa;IAEzC,OAAO,CAAC,OAAO,CAA+B;IAC9C,OAAO,CAAC,YAAY,CAA2B;IAC/C,mDAAmD;IACnD,OAAO,CAAC,SAAS,CAAS;IAE1B,YAAY,OAAO,EAAE,gBAAgB,EAepC;IAED,IAAI,MAAM,IAAI,OAAO,CAEpB;IAED,OAAO,IAAI,IAAI,CASd;IAED,OAAO,CAAC,CAAC;IAIT;;;;;;OAMG;IACH,OAAO,CAAC,IAAI,CAeV;IAEF,kDAAkD;IAClD,OAAO,CAAC,MAAM,CAEZ;IAEF,OAAO,CAAC,QAAQ,CAEd;IAEF,OAAO,CAAC,OAAO,CAGb;IAEF,OAAO,CAAC,IAAI;IAMZ,OAAO,CAAC,IAAI;IAQZ;;;OAGG;IACH,OAAO,CAAC,YAAY;IAWpB,OAAO,CAAC,KAAK;IAuCb,OAAO,CAAC,WAAW;IAUnB,OAAO,CAAC,YAAY;IAYpB;;;;OAIG;IACH,OAAO,CAAC,MAAM;YA4BA,QAAQ;CA0BvB"}
|
|
@@ -1,19 +1,16 @@
|
|
|
1
1
|
/**
|
|
2
2
|
* ThemeManager - 主题管理
|
|
3
3
|
*/
|
|
4
|
-
|
|
4
|
+
/** 内置亮/暗两套,带字面量提示;仍需允许任意自定义主题名 */
|
|
5
|
+
export type ThemeType = 'light' | 'dark' | (string & {});
|
|
5
6
|
export declare class ThemeManager {
|
|
6
7
|
private container;
|
|
7
8
|
private currentTheme;
|
|
8
9
|
constructor(container: HTMLElement, theme?: ThemeType);
|
|
9
10
|
/**
|
|
10
|
-
*
|
|
11
|
+
* 应用当前主题:内置主题与自定义主题走同一条 class 规则,只是名字不同
|
|
11
12
|
*/
|
|
12
13
|
private applyTheme;
|
|
13
|
-
/**
|
|
14
|
-
* 获取当前主题
|
|
15
|
-
*/
|
|
16
|
-
getTheme(): ThemeType;
|
|
17
14
|
/**
|
|
18
15
|
* 设置主题
|
|
19
16
|
*/
|
|
@@ -22,9 +19,5 @@ export declare class ThemeManager {
|
|
|
22
19
|
* 切换亮/暗主题
|
|
23
20
|
*/
|
|
24
21
|
toggleTheme(): void;
|
|
25
|
-
/**
|
|
26
|
-
* 是否为暗色主题
|
|
27
|
-
*/
|
|
28
|
-
isDark(): boolean;
|
|
29
22
|
}
|
|
30
23
|
//# sourceMappingURL=ThemeManager.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ThemeManager.d.ts","sourceRoot":"","sources":["../../src/core/ThemeManager.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,MAAM,MAAM,SAAS,GAAG,OAAO,GAAG,MAAM,GAAG,MAAM,CAAC;
|
|
1
|
+
{"version":3,"file":"ThemeManager.d.ts","sourceRoot":"","sources":["../../src/core/ThemeManager.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,kCAAkC;AAClC,MAAM,MAAM,SAAS,GAAG,OAAO,GAAG,MAAM,GAAG,CAAC,MAAM,GAAG,EAAE,CAAC,CAAC;AAEzD,qBAAa,YAAY;IACvB,OAAO,CAAC,SAAS,CAAc;IAC/B,OAAO,CAAC,YAAY,CAAY;IAEhC,YAAY,SAAS,EAAE,WAAW,EAAE,KAAK,GAAE,SAAmB,EAI7D;IAED;;OAEG;IACH,OAAO,CAAC,UAAU;IASlB;;OAEG;IACH,QAAQ,CAAC,KAAK,EAAE,SAAS,GAAG,IAAI,CAG/B;IAED;;OAEG;IACH,WAAW,IAAI,IAAI,CASlB;CACF"}
|
|
@@ -6,6 +6,7 @@ import { type Editor } from '@tiptap/core';
|
|
|
6
6
|
import type { ToolbarConfig } from '../types';
|
|
7
7
|
import type { MediaRuntime } from '../media/MediaRuntime';
|
|
8
8
|
import type { I18nManager } from './I18nManager';
|
|
9
|
+
import type { LinkPanel } from './LinkPanel';
|
|
9
10
|
/**
|
|
10
11
|
* 工具栏管理器
|
|
11
12
|
*/
|
|
@@ -15,6 +16,8 @@ export declare class ToolbarManager {
|
|
|
15
16
|
private i18n?;
|
|
16
17
|
private config?;
|
|
17
18
|
private mediaRuntime;
|
|
19
|
+
/** 链接浮层由门面持有:编辑态点击链接也要能打开它,跟工具栏渲染不渲染无关 */
|
|
20
|
+
private linkPanel;
|
|
18
21
|
private unsubscribeLanguage?;
|
|
19
22
|
/** 同一个项可能同时渲染在顶栏与浮动工具栏里,所以一个 id 对应一组按钮 */
|
|
20
23
|
private buttons;
|
|
@@ -23,7 +26,8 @@ export declare class ToolbarManager {
|
|
|
23
26
|
private itemDefs;
|
|
24
27
|
private createdElements;
|
|
25
28
|
private panel;
|
|
26
|
-
|
|
29
|
+
private tablePanel;
|
|
30
|
+
constructor(editor: Editor, container: HTMLElement, config?: ToolbarConfig, i18n?: I18nManager, mediaRuntime?: MediaRuntime | null, linkPanel?: LinkPanel | null);
|
|
27
31
|
/**
|
|
28
32
|
* 把浮动工具栏的按钮渲染进给定的元素
|
|
29
33
|
*
|
|
@@ -36,6 +40,12 @@ export declare class ToolbarManager {
|
|
|
36
40
|
*/
|
|
37
41
|
private get insertPanel();
|
|
38
42
|
private openInsert;
|
|
43
|
+
/**
|
|
44
|
+
* 表格网格面板按需创建:没点开过就不该有一个实例挂在编辑器上
|
|
45
|
+
*/
|
|
46
|
+
private get gridPanel();
|
|
47
|
+
/** 内置表格真可用才摆按钮:table:false 未注册、或被用户同名扩展顶掉都不摆(判定见 canInsertTable) */
|
|
48
|
+
private get tableExtensionRegistered();
|
|
39
49
|
/**
|
|
40
50
|
* 创建工具栏 DOM - 直接将按钮插入 container
|
|
41
51
|
*/
|
|
@@ -59,8 +69,11 @@ export declare class ToolbarManager {
|
|
|
59
69
|
private bindEditorEvents;
|
|
60
70
|
/**
|
|
61
71
|
* 更新所有按钮状态
|
|
72
|
+
*
|
|
73
|
+
* 公开是因为浮层开合不改文档,等不到 transaction:挂在门面上的浮层(链接)
|
|
74
|
+
* 由门面在开合时叫一次,挂在这里的浮层则在 onOpenChange 里叫
|
|
62
75
|
*/
|
|
63
|
-
|
|
76
|
+
updateButtonStates(): void;
|
|
64
77
|
/**
|
|
65
78
|
* 销毁工具栏
|
|
66
79
|
*/
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ToolbarManager.d.ts","sourceRoot":"","sources":["../../src/core/ToolbarManager.ts"],"names":[],"mappings":"AAAA;;;GAGG;AACH,OAAO,EAAmB,KAAK,MAAM,EAAE,MAAM,cAAc,CAAC;AAC5D,OAAO,KAAK,EAAE,aAAa,EAAe,MAAM,UAAU,CAAC;AAE3D,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,uBAAuB,CAAC;AAE1D,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,eAAe,CAAC;
|
|
1
|
+
{"version":3,"file":"ToolbarManager.d.ts","sourceRoot":"","sources":["../../src/core/ToolbarManager.ts"],"names":[],"mappings":"AAAA;;;GAGG;AACH,OAAO,EAAmB,KAAK,MAAM,EAAE,MAAM,cAAc,CAAC;AAC5D,OAAO,KAAK,EAAE,aAAa,EAAe,MAAM,UAAU,CAAC;AAE3D,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,uBAAuB,CAAC;AAE1D,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,eAAe,CAAC;AACjD,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,aAAa,CAAC;AAoD7C;;GAEG;AACH,qBAAa,cAAc;IACzB,OAAO,CAAC,SAAS,CAAc;IAC/B,OAAO,CAAC,MAAM,CAAS;IACvB,OAAO,CAAC,IAAI,CAAC,CAAc;IAC3B,OAAO,CAAC,MAAM,CAAC,CAAgB;IAC/B,OAAO,CAAC,YAAY,CAAsB;IAC1C,0CAA0C;IAC1C,OAAO,CAAC,SAAS,CAAmB;IACpC,OAAO,CAAC,mBAAmB,CAAC,CAAa;IACzC,0CAA0C;IAC1C,OAAO,CAAC,OAAO,CAAkD;IACjE,2CAA2C;IAC3C,OAAO,CAAC,cAAc,CAAkC;IACxD,OAAO,CAAC,QAAQ,CAA8B;IAC9C,OAAO,CAAC,eAAe,CAAqB;IAC5C,OAAO,CAAC,KAAK,CAA4B;IACzC,OAAO,CAAC,UAAU,CAA+B;IAEjD,YACE,MAAM,EAAE,MAAM,EACd,SAAS,EAAE,WAAW,EACtB,MAAM,CAAC,EAAE,aAAa,EACtB,IAAI,CAAC,EAAE,WAAW,EAClB,YAAY,CAAC,EAAE,YAAY,GAAG,IAAI,EAClC,SAAS,CAAC,EAAE,SAAS,GAAG,IAAI,EAa7B;IAED;;;;;OAKG;IACH,mBAAmB,CAAC,OAAO,EAAE,WAAW,GAAG,IAAI,CAoC9C;IAED;;OAEG;IACH,OAAO,KAAK,WAAW,GAUtB;IAED,OAAO,CAAC,UAAU;IAIlB;;OAEG;IACH,OAAO,KAAK,SAAS,GASpB;IAED,oEAAoE;IACpE,OAAO,KAAK,wBAAwB,GAEnC;IAED;;OAEG;IACH,OAAO,CAAC,gBAAgB;IAmDxB;;OAEG;IACH,OAAO,CAAC,WAAW;IAsBnB,OAAO,CAAC,YAAY;IA4CpB;;OAEG;IACH,OAAO,CAAC,aAAa;IAkBrB;;OAEG;IACH,OAAO,CAAC,eAAe;IA+RvB;;OAEG;IACH,OAAO,CAAC,gBAAgB;IAaxB;;;;;OAKG;IACH,kBAAkB,IAAI,IAAI,CAiBzB;IAED;;OAEG;IACH,OAAO,IAAI,IAAI,CAad;CACF"}
|
|
@@ -0,0 +1,20 @@
|
|
|
1
|
+
export interface FloatingPanel {
|
|
2
|
+
/** 停止位置跟随;重复调用无副作用 */
|
|
3
|
+
stop: () => void;
|
|
4
|
+
}
|
|
5
|
+
/**
|
|
6
|
+
* 把面板锚定到 trigger 下方并持续跟随。
|
|
7
|
+
* isCurrent 用于在异步计算间隙确认面板还没被关掉/换掉——关掉的实例不该再写样式
|
|
8
|
+
*/
|
|
9
|
+
export declare function positionPanel(trigger: HTMLElement, panel: HTMLElement, isCurrent: () => boolean): FloatingPanel;
|
|
10
|
+
/**
|
|
11
|
+
* 点外面与 Escape 关闭;trigger 本身交给调用方的 toggle,
|
|
12
|
+
* 否则关了又立刻被这次点击重开
|
|
13
|
+
*/
|
|
14
|
+
export declare function listenPanelDismiss(trigger: HTMLElement, panel: HTMLElement, onClose: () => void): () => void;
|
|
15
|
+
/**
|
|
16
|
+
* 主题变量写在 .atri-editor 上,浮层挂在 body 上够不着,只能把主题类复制一份。
|
|
17
|
+
* 面板此刻往往还没入 DOM,closest 搜不到编辑器根,所以源元素必须由编辑器侧给(如 view.dom)
|
|
18
|
+
*/
|
|
19
|
+
export declare function copyThemeClasses(source: Element | null, panel: HTMLElement): void;
|
|
20
|
+
//# sourceMappingURL=floating-panel.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"floating-panel.d.ts","sourceRoot":"","sources":["../../src/core/floating-panel.ts"],"names":[],"mappings":"AAQA,MAAM,WAAW,aAAa;IAC5B,sBAAsB;IACtB,IAAI,EAAE,MAAM,IAAI,CAAC;CAClB;AAED;;;GAGG;AACH,wBAAgB,aAAa,CAC3B,OAAO,EAAE,WAAW,EACpB,KAAK,EAAE,WAAW,EAClB,SAAS,EAAE,MAAM,OAAO,GACvB,aAAa,CAgCf;AAED;;;GAGG;AACH,wBAAgB,kBAAkB,CAChC,OAAO,EAAE,WAAW,EACpB,KAAK,EAAE,WAAW,EAClB,OAAO,EAAE,MAAM,IAAI,GAClB,MAAM,IAAI,CAoBZ;AAED;;;GAGG;AACH,wBAAgB,gBAAgB,CAAC,MAAM,EAAE,OAAO,GAAG,IAAI,EAAE,KAAK,EAAE,WAAW,GAAG,IAAI,CAIjF"}
|